/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package talleruno;

import javax.swing.JOptionPane;

/**
 *
 * @author Marisol
 */
public class Main {

	/**
	 * @param args the command line arguments
	 */
	public static void main(String[] args) {
		// TODO code application logic here
		//Inicializacion de variables
		int sel = 0;
		String entrada;

		int sel2 = 0;
		String entradaTipo;

		String entradaEstado;

		//Instancias
		Persona ObjPer = new Persona();
		Automovil ObjAuto = new Automovil();
		Computador ObjComp = new Computador();

		do {
			entrada = JOptionPane.showInputDialog("\n1.Clase de Origen" + "\n2.Instancia con Estado Inicial" + "\n3.Establecer estados" + "\n4.Obtener Estados" + "\n5.Verificar comportamiento" + "\n6.Salir");
			sel = Integer.parseInt(entrada);

			switch (sel) {
				// Seleccionar la Clase de Origen
				case 1: {
					entradaTipo = JOptionPane.showInputDialog("\n1.Persona" + "\n2.Automovil" + "\n3.Computador");
					sel2 = Integer.parseInt(entradaTipo);
					switch (sel2) {
						case 1: {
							JOptionPane.showMessageDialog(null, "Usted ha seleccionado Persona");
							break;
						}
						case 2: {
							JOptionPane.showMessageDialog(null, "Usted ha seleccionado Automovil");
							break;
						}
						case 3: {
							JOptionPane.showMessageDialog(null, "Usted ha seleccionado Computador");
							break;
						}
					}
					break;
				}
	
				// Inicializar la Clase de Origen Seleccionada
				case 2: {
					switch (sel2) {
						case 1: {
							ObjPer = new Persona("", "", "");
							break;
						}
						case 2: {
							ObjAuto = new Automovil("", "", "", "");
							break;
						}
						case 3: {
							ObjComp = new Computador("", "", "", "", "");
							break;
						}
					}
					break;
				}
	
				//Establecer estados para la Clase de Origen seleccionada
				case 3 : {
					switch (sel2) {
						case 1: {
							entradaEstado = JOptionPane.showInputDialog("Ingrese genero de la persona");
							ObjPer.setGenero(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese Nombre de la persona");
							ObjPer.setNombre(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese Edad de la persona");
							ObjPer.setEdadPersona(entradaEstado);
							break;
						}
						case 2: {
							entradaEstado = JOptionPane.showInputDialog("Ingrese modelo del automovil");
							ObjAuto.setModelo(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese color del automovil");
							ObjAuto.setColor(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese motor del automovil");
							ObjAuto.setMotor(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese cantidad de Puertas del automovil");
							ObjAuto.setCantidadPuertas(entradaEstado);
							break;
						}
						case 3: {
							entradaEstado = JOptionPane.showInputDialog("Ingrese marca del computador");
							ObjComp.setMarca(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese sistema operativo");
							ObjComp.setSistemaOperativo(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese precio del computador");
							ObjComp.setPercio(entradaEstado);
							entradaEstado = JOptionPane.showInputDialog("Ingrese el tipo de computador");
							ObjComp.settipo(entradaEstado);
							break;
						}
					}
					break;
				}
	
				//Obtener estados para la Clase de Origen seleccionada
				case 4: {
					switch (sel2) {
						case 1: {
							JOptionPane.showMessageDialog(null, "Datos de Persona: " + "\nGenero: " + ObjPer.getGenero() + "\nNombre: " + ObjPer.getNombre() + "\nEdad: " + ObjPer.getEdadpersona());
							break;
						}
						case 2: {
							JOptionPane.showMessageDialog(null, "Datos de Automovil: " + "\nModelo: " + ObjAuto.getModelo() + "\nColor: " + ObjAuto.getColor() + "\nMotor: " + ObjAuto.getMotor() + "\nCantidad de Puertas: " + ObjAuto.getCantidadPuertas());
							break;
						}
						case 3: {
							JOptionPane.showMessageDialog(null, "Datos de Computador: " + "\nMarca: " + ObjComp.getMarca() + "\nSistema Operativo: " + ObjComp.getSistemaOperativo() + "\nTipo: " + ObjComp.getTipo() + "\nColor: " + ObjComp.getColor() + "\nPrecio: " + ObjComp.getPrecio());
							break;
						}
					}
					break;
				}
	
				//Verificar Comportamiento para la Clase de Origen seleccionada
				case 5: {
					switch (sel2) {
						case 1: {
							JOptionPane.showMessageDialog(null, "Persona comiendo: " + ObjPer.comer() + "\nDurmiendo: " + ObjPer.dormir() + "\nGritando: " + ObjPer.gritar());
							break;
						}
						case 2: {
							JOptionPane.showMessageDialog(null, "Automovil arrancando: " + ObjAuto.arrancar() + "\nFrenando: " + ObjAuto.frenar() );
							break;
						}
						case 3: {
							JOptionPane.showMessageDialog(null, "Computador calculando: " + ObjComp.calcular() + "\nApagando: " + ObjComp.apagar() );
							break;
						}
					}
					break;
				}
			}
		} while( sel != 6 );
	}
}
